home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / kn / elate / exec / initbasecontext.c < prev    next >
C/C++ Source or Header  |  2001-05-12  |  1KB  |  61 lines

  1.  
  2. #include "tek/kn/elate/exec.h"
  3. #include <stdio.h>
  4.  
  5. /* 
  6. **    TEKlib
  7. **    (C) 2001 TEK neoscientists
  8. **    all rights reserved.
  9. **
  10. **    TBOOL kn_initbasecontext(TKNOB *thread, TAPTR data)
  11. **
  12. **    init kernel basecontext.
  13. **
  14. */
  15.  
  16. TBOOL kn_initbasecontext(TKNOB *thread, TAPTR selfdata)
  17. {
  18.     if (sizeof(TKNOB) >= sizeof(struct elatethread))
  19.     {
  20.         struct elatethread *t = (struct elatethread *) thread;
  21.         void *ndadata;
  22.  
  23.         kn_memset(t, sizeof(struct elatethread), 0);
  24.  
  25.         sprintf(t->globalname, "tektask%08x", kn_proc_pid_get());
  26.         ndadata = kn_nda_name(t, t->globalname);
  27.         if (ndadata == t)
  28.         {
  29.             t->data = selfdata;
  30.             return TTRUE;
  31.         }
  32.         else
  33.         {
  34.             dbkprintf1(20,"*** TEKLIB kernel: could not setup NDA record %s\n", ndadata);
  35.         }
  36.     }
  37.     else
  38.     {
  39.         struct elatethread *t = kn_alloc0(sizeof(struct elatethread));
  40.         if (t)
  41.         {
  42.             void *ndadata;
  43.             sprintf(t->globalname, "tektask%08x", kn_proc_pid_get());
  44.             ndadata = kn_nda_name(t, t->globalname);
  45.             if (ndadata == t)
  46.             {
  47.                 t->data = selfdata;
  48.                 *((struct elatethread **) thread) = t;
  49.                 return TTRUE;
  50.             }
  51.             else
  52.             {
  53.                 dbkprintf1(20,"*** TEKLIB kernel: could not setup NDA record %s\n", ndadata);
  54.             }
  55.         }
  56.     }
  57.  
  58.     dbkprintf(10,"*** TEKLIB kernel: could not establish basecontext\n");
  59.     return TFALSE;
  60. }
  61.